iT邦幫忙

2024 iThome 鐵人賽

DAY 5
1
AI/ ML & Data

征服機器學習的終極秘技系列 第 5

Day 5 - 數據質量提升之道:資料探勘

  • 分享至 

  • xImage
  •  

簡介

前一篇文章提過要盡可能地將數據收集完整,但現實情況中往往會有不完美的情況,導致直接影響到數據的質量,從而對後續的建模分析產生不利影響。高質量的數據是模型訓練的基礎,如果輸入的訓練數據存在許多噪音和不一致,即使採用了最先進的算法和模型,最終的結果也很難令人滿意。資料探勘 (Data Mining) 能幫助我們觀察數據的本質屬性和隱藏規律。通過可視化、統計分析、相關性分析等技術,我們能夠全面理解數據,發現異常點、缺失值模式等潛在問題,為後續的數據清理做好準備。

資料探勘 (Data Mining)

資料探勘的目標是深入瞭解數據的本質特徵,發現潛在的規律、趨勢和關聯,為接下來的數據清理和模型建構做好充分準備。它主要包括:

  1. 人工數據概覽:我們需要快速直觀了解數據集的基本情況,初步檢查數據合理性和相關性,確保數據沒有明顯的問題。此步驟包括:
  • 觀察數據集數量:檢查數據集中樣本的數量,確保有足夠多的樣本以支持統計分析和模型訓練。樣本數量過少可能導致分析結果不穩定,影響模型的準確性。我們應該盡可能收集更多數據,以確保分析的有效性及穩定性。
  • 觀察數據集類型:確認各個特徵的數據類型
    例如數值型、分類型或文本型數據。這些基本資訊能幫助我們了解數據的整體結構。例如,在一個零售銷售數據集中,可以有商品銷售量(數值型)、商品類別(分類型)和顧客評論(文本型)。對數據類型的理解有助於我們設計適合的數據處理和分析方法,因為不同類型的數據需要不同的處理技術和模型應用。
  • 確認數據相關性:即使在數據收集階段已經進行過檢查,但仍可能存在不相關的數據。因此,我們需要再次確認收到的數據是否與預測目標相關。例如,要預測建築營造成本,模型中的參數應該僅限於與建築相關的因素。
  • 檢查數據合理性:檢查數據值的範圍和大小,確保數據中每一個欄位的數值是否有奇怪的地方。例如,在銷售量預測專案中,我們需要確保數據集中的銷售量或客戶年齡不包含負值或其他顯著不合理的數據。
  • 檢查標註的正確性和一致性:確認數據的標註是否正確且一致,避免因標註錯誤而導致模型訓練效果不佳。例如,在垃圾信箱辨識專案中,我們可以快速瀏覽一些郵件樣本,確認郵件標註確實沒有誤標。錯誤的標註可能導致模型訓練時學習到不正確的模式,進而降低模型在實際應用中的效能和準確性。
    在數據概覽時,每個參數的檢查都是必要的,這樣可以避免後續分析過程中出現不必要的誤差。即使有專業知識的人員參與,這些檢查步驟仍然是必要的。
  1. 探索性數據分析 (EDA)通過資料視覺化和統計圖表,深入理解數據的結構和分佈情況,並藉此發現前一步驟人工數據概覽可能沒發現到的問題。此步驟包括:
  • 資料視覺化:往往用肉眼看原始數據會看不出參數之間的關聯性,因此需要運用各種繪圖方式去深入觀察和分析數據的多個方面,包括:
    • 分布:直方圖 (Histogram) 可以看 連續變數的資料分布,幫助理解數據的集中趨勢。密度圖(Density Map) 可以看連續型變量的分布形狀,適用於比較多個組別的分布差異。箱型圖(Box Plot) 可以看到數據的四分位數,有助於比較多個組的分布,亦可以觀察到是否有極端值。
    • 關係:散點圖 (Scatter Plot) 可以看兩個 連續變量之間的關係 ,以直觀看出是否存在線性或非線性關聯,如銷售額與廣告支出的關係,亦可以迅速觀察到是否有極端值。
    • 趨勢:折線圖 (Line Plot) 可以展示 隨時間變化的趨勢 。適合顯示連續數據的變化模式,如股票價格或銷售額的時間趨勢。通常趨勢圖會與時間序列有關。
    • 比較:長條圖 (Bar Chart) 可以看 類別型的頻率分布 ,比較不同類別的數值大小。幫助理解數據的離散程度,如不同部門的銷售業績比較。
    • 地理分布:地理分布圖 (Geographic Bubble Map) 可以展示 數據的地理分布 。適合分析空間模式和地區差異,如各地區的客戶分布。

https://ithelp.ithome.com.tw/upload/images/20240906/20168116Djb3SXIi9N.jpg
[筆者自行用 google colab 隨機生成數據點並繪製以上提到的資料視覺化的圖
google colab 連結

  • 統計性描述:提供數據的基本定量概述,通常可以整理成表格,包括
    • 集中趨勢,幫助理解數據的集中程度:
      • 平均值 (Mean):所有 數據點的算術平均數。它對異常值敏感,因為它受每個數據點影響。
      • 中位數 (Median):將 數據排序後位於中間的數值。它不受異常值的影響,更能反映數據的中心位置。
      • 眾數 (Mode, 出現最多頻率的數):出現最頻繁的數值。對於類別型數據或有明顯高峰的數據分佈特別有用。
    • 離散度,用於描述數據的分散情況:
      • 最小值 (Minimum)、最大值 (Maximum):數據集中的最小和最大數值,反映數據的範圍。
      • 方差 (Variance):數據點到平均值的平均距離的平方,提供了數據分佈的變異性程度。
      • 標準差 (Standard Deviation):方差的平方根,通常用來描述數據的分散程度。標準差越大,數據分佈越分散。
    • 分布特徵,用於判斷數據是否符合常態分佈以及觀察對稱性:
      • 偏度 (Skewness):數據分佈的偏斜程度及對稱性。右偏表示數據的右尾部較長,左偏則相反。如果偏態為正數,數據右偏;如果為負數,數據左偏。數值越大,分佈越偏斜。
      • 峰度 (Kurtosis):數據分佈的峰度或尖峰程度。高峰度表示分佈更尖銳,低峰度則表示分佈更平坦。高峰度表示數據集中在平均值附近,低峰度表示數據分佈較分散。數值越高,分佈越尖銳。
    • 分位數,用於將數據集分成等分,描述數據點在整個數據範圍中的位置:
      • 四分位距 (Interquartile Range, IQR):數據集的上四分位數 (Q1) 和下四分位數 (Q3)之間的差值,亦為 Q3-Q1 數值。用於描述數據的集中分佈範圍。
      • 百分位數 (Percentiles):將數據集分成百等分的值,如第 25 百分位數表示有 25% 的數據小於這個值。
  • 相關係數分析 (Correlation Coefficient Analysis):用於評估特徵之間的關係及其對預測目標的影響程度。特徵與特徵之間的關係以及特徵與預測目標之間的關係強度都會影響模型的權重分配和後續特徵工程的處理。常用的方法包括:
    • Pearson 相關係數:適用於線性關係。測量線性關係的強度和方向,取值範圍從 -1(完全負相關)到 1(完全正相關)。
    • Spearman 相關係數:用於評估單調關係,尤其適用於非線性關係數據。
    • 熱力圖相關矩陣 (Heatmap):呈現多個變量之間的相關性,提供直觀的視覺化方式來理解變量之間的關係。
      https://ithelp.ithome.com.tw/upload/images/20240905/20168116tDAHQMwdgX.jpg

[筆者自行使用隨機數字生成 Heatmap圖,google colab

在進行相關係數分析時,需要特別注意特徵之間是否有多重共線性 (Multicollinearity) 問題,也就是特徵與特徵之間如果存在過度高度相關,可能會導致模型過度依賴這些特徵,從而增加它們的權重。如果這些特徵對模型有負面影響,這種過度的權重會反而削弱模型的穩定性和解釋性

  • 異常值檢測:識別可能影響分析結果的極端值,雖然前面在資料視覺化時,大約可以觀察到一些特別極端的值,但肉眼觀察缺乏一個定量量化指標。因此,我們還是會採用統計分析方法來進行更精確的異常值檢測,包含 Z-score 及 IQR
    • Z-score 方法:計算每個數據點與平均值的標準差距離。通常,絕對 Z-score 大於 3 的數據點被視為潛在異常值。
    • IQR(四分位距)方法:基於數據的四分位數來識別異常值。通常,小於 Q1-1.5*IQR 或大於 Q3+1.5*IQR 的數據點被視為潛在異常值。[Note: Q1:前 25% 的數據,Q2:中位數,Q3:前 75% 的數據,IQR:Q3-Q1 的數值]
  • 缺失值檢測:數據收集過程總是會有特徵參數可能無法測量或收集,導致數據集中出現缺失值。缺失值檢測的目的是識別和量化這些缺失數據。檢測步驟包括:
    • 計算每個特徵的缺失值數量和比例,有助於判斷哪些特徵缺失值較多並作相對應處理。
    • 分析缺失值模式:判斷缺失值是否隨機出現。如果缺失值集中在某些條件下,可能需要進一步調查原因。例如:在一個醫療數據集中,如果發現某些病人的年齡數據缺失,而這些病人都來自同一家醫院,這可能表明該醫院的數據記錄存在系統性問題,需要進一步調查和糾正。
    • 數據完整性檢查:確保所有數據記錄的一致性和完整性。例如,檢查日期範圍內是否有缺失的時間段,或是某些條件下的數據是否完全缺失。例如:在一個銷售數據集中,如果我們檢查 2023 年 1 月至 2023 年 12 月的數據,應該確認每個月份都有銷售記錄。如果發現 2023 年 3 月的數據完全缺失,這可能表示數據收集過程中出現了問題,應進一步調查原因並嘗試補全。

https://ithelp.ithome.com.tw/upload/images/20240905/20168116ON3ftQF4EW.jpg

  • 重複數據檢測:在數據收集中,重複數據可能由多種原因產生,包括數據輸入錯誤、重複測試等。檢測步驟包括:
    • 完全重複:在數據收集中,有時會不小心輸入完全重複的數據,因此需要計算完全重複記錄的數量和比例
    • 部分特徵重複:在數據收集中,若觀察到某些特徵數值不同,但某些特徵有重複,例如個案為同一案,需詢問專業人士或數據收集者,了解是巧合還是特殊因素導致重複,以決定如何處理這些數據。有時是因為同一個個案第一次檢測數據收集的結果不理想而進行多次檢測。

https://ithelp.ithome.com.tw/upload/images/20240905/201681165nKtzGezxZ.jpg

結論

通過資料探勘,我們能夠充分掌握數據的質量和特性,發現潛在的問題和不足。下一步就是解決觀察到的問題並進一步的做數據清理,以確保後續模型訓練和預測結果的準確性。無論是分析數據分布還是識別異常數據,這些資料探勘工作都能夠幫助我們更好地理解和利用數據,為數據的進一步處理和分析做好充分準備。下一篇我們將會提供數據清理的方法。


上一篇
Day 4 - 機器學習項目的起點:問題定義與數據收集
下一篇
Day 6 - 打造高品質資料集:數據清理
系列文
征服機器學習的終極秘技6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言